package org.ccams.dao;


import java.util.List;

import org.ccams.domain.TMenu;
import org.ccams.util.PageParameter;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;//spring的DAO处理

/**
 * 菜单dao
 * @author liuguangshuai@gmail.com
 * @系统名称：定制化辅助生成制造系统
 */
public class TMenuDao extends SqlMapClientDaoSupport {
	/**
	 * 返回指定父级id下的所有菜单
	 * @param pid
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public  List<TMenu> getTMenuByPid(String pid){
		return getSqlMapClientTemplate().queryForList("TMenu.getTMenuByPid",pid);
	}
	/**
	 * 返回指定页码的菜单
	 * @return
	 */
	@SuppressWarnings({ "unchecked", "deprecation" })
	public  List<TMenu> getTMenu(PageParameter pageParmeter){		
		return getSqlMapClientTemplate().queryForList("TMenu.getTMenuByPage", pageParmeter);
	}
	/**
	 * 返回查询条件的数据
	 * @return
	 */	
	@SuppressWarnings({ "unchecked", "deprecation" })
	public  List<TMenu> getTMenuByKey(PageParameter pageParmeter){		
		return getSqlMapClientTemplate().queryForList("TMenu.getTMenuByPageAndKey", pageParmeter);
	}
	/**
	 * 统计查询条件的数据
	 * @return
	 */		
	public int getCount(String keywords){
		return (Integer)getSqlMapClientTemplate().queryForObject("TMenu.getTMenuCountByKey",keywords);
	}	
	/**
	 * 返回记录总数
	 * @return
	 */
	public int getCount(){
		return (Integer)getSqlMapClientTemplate().queryForObject("TMenu.getTMenuCount");
	}

	/**
	 * 返回所有菜单
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public  List<TMenu> getAllTMenu(){		
		return getSqlMapClientTemplate().queryForList("TMenu.getAllTMenu");
	}
	/**
	 * 得到所有父id
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public String getTMenuPid(){	
		StringBuffer parentIDBuffer =new StringBuffer();
        parentIDBuffer.append("|");
		List<TMenu> list =getSqlMapClientTemplate().queryForList("TMenu.getTMenuPid");
		for(TMenu t : list){
			parentIDBuffer.append(t.getPid());
			parentIDBuffer.append("|");
		}
		//得到所有的parentDID列表（这是一个巧妙的算法^_^）
        String parentIDString = parentIDBuffer.toString();
		return parentIDString;
	}
	/**
	 * add Entity
	 * @param t
	 * @return
	 */
	public int insertTMenu(TMenu t ){
		return getSqlMapClientTemplate().update("TMenu.addTMenu", t);
	}
	/*
	 * update Entity
	 * @param t
	 * @return 
	 */
	public int updateTMenu(TMenu t ){
		return getSqlMapClientTemplate().update("TMenu.updateTMenu", t);
	}
	/**
	 * delete Entity
	 * @param id
	 * @return
	 */
	public int deleteTMenu(String id){
		return getSqlMapClientTemplate().update("TMenu.deleteTMenu", id);
	}
}
